From d6bc83a531e4cfdd29da95afa992b95be8316080 Mon Sep 17 00:00:00 2001 From: Roger Pau Monne Date: Wed, 2 Oct 2013 11:24:23 +0200 Subject: [PATCH] libxl/hotplug: add support for getting domid MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This patch writes Dom0 domid on xenstore (like it's done for other guests), and adds a libxl helper function to fetch that domid from xenstore. Signed-off-by: Roger Pau Monné Acked-by: Ian Campbell Acked-by: Ian Jackson [ ijc -- dropped xencommons hunk, same change was made independently in 02ebea7768fe ] --- tools/libxl/libxl.c | 17 +++++++++++++++++ tools/libxl/libxl_internal.h | 3 +++ 2 files changed, 20 insertions(+) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index bede011157..0f0f56c248 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1692,6 +1692,23 @@ int libxl_vncviewer_exec(libxl_ctx *ctx, uint32_t domid, int autopass) return ERROR_FAIL; } +int libxl__get_domid(libxl__gc *gc, uint32_t *domid) +{ + int rc; + const char *xs_domid; + + rc = libxl__xs_read_checked(gc, XBT_NULL, DOMID_XS_PATH, &xs_domid); + if (rc || !xs_domid) { + rc = rc ? rc : ERROR_FAIL; + goto out; + } + + *domid = atoi(xs_domid); + +out: + return rc; +} + /******************************************************************************/ /* generic callback for devices that only need to set ao_complete */ diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index 4f925220bb..4729566387 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -101,6 +101,7 @@ #define STUBDOM_SPECIAL_CONSOLES 3 #define TAP_DEVICE_SUFFIX "-emu" #define DISABLE_UDEV_PATH "libxl/disable_udev" +#define DOMID_XS_PATH "domid" #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) @@ -978,6 +979,8 @@ _hidden const char *libxl__device_nic_devname(libxl__gc *gc, uint32_t devid, libxl_nic_type type); +_hidden int libxl__get_domid(libxl__gc *gc, uint32_t *domid); + /* * libxl__ev_devstate - waits a given time for a device to * reach a given state. Follows the libxl_ev_* conventions. -- 2.30.2